package vip.web3.admin.sys.vo.biz.export;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.Data;
import vip.web3.admin.common.export.ActiveConverter;
import vip.web3.admin.common.export.AuthConverter;
import vip.web3.admin.common.export.UserStatusConverter;
import vip.web3.common.utils.DateUtils;

import java.util.Date;


/**
 * @author lilei
 */
@Data
public class ExUserVo {

    @ExcelProperty(value = "用户ID", index = 0)
    private Integer id;
    /**
     * 手机,账号
     */
    @ExcelProperty(value = "手机账号", index = 1)
    private String mobile;
    /**
     * 昵称
     */
    @ExcelProperty(value = "昵称", index = 2)
    private String nick;

    /**
     * 性别(1:男,2:女,3:未知)
     */
    @ExcelIgnore
    private Integer gender;
    /**
     * 登录密码
     */
    @ExcelIgnore
    private String password;
    /**
     * 资金密码
     */
    @ExcelIgnore
    private String fundPassword;
    /**
     * 头像链接
     */
    @ExcelIgnore
    private String headUrl;
    /**
     * 上级userid
     */
    @ExcelProperty(value = "上级id", index = 3)
    private Integer path;
    /**
     * 上上级userid
     */
    @ExcelIgnore
    private Integer path2;
    /**
     * 上上上级userid
     */
    @ExcelIgnore
    private Integer path3;
    /**
     * 根路径
     */
    @ExcelProperty(value = "推荐关系", index = 4)
    private String route;
    /**
     * 邀请码
     */
    @ExcelProperty(value = "邀请码", index = 5)
    private String inviteCode;
    /**
     * 会员等级(团队业绩)
     */
    @ExcelProperty(value = "会员等级", index = 6)
    private Integer teamLevel;
    /**
     * 会员等级: 初创, 中创, 顶创, 战略
     */
    @ExcelProperty(value = "会员等级名称", index = 7)
    private String teamName;
    /**
     * 会员等级持续月数
     */
    @ExcelProperty(value = "会员等级持续月数", index = 8)
    private Integer teamSustain;
    /**
     * 个人业绩等级
     */
    @ExcelProperty(value = "个人业绩等级", index = 9)
    private Integer personalLevel;
    /**
     * 个人业绩等级: 资深, 专业, 大师, 战略
     */
    @ExcelProperty(value = "个人业绩等级名称", index = 10)
    private String personalName;
    /**
     * 季度等级
     */
    @ExcelProperty(value = "季度等级", index = 11)
    private Integer quarterLevel;
    /**
     * 季度等级: 原料1-5号
     */
    @ExcelProperty(value = "季度等级名称", index = 12)
    private String quarterName;
    /**
     * BSC 地址
     */
    @ExcelProperty(value = "BSC地址", index = 13)
    private String bscAddress;
    /**
     * BSC 私钥
     */
    @ExcelIgnore
    private String bscPrivate;
    /**
     * 波场 地址
     */
    @ExcelProperty(value = "波场地址", index = 14)
    private String tronAddress;
    /**
     * 波场 私钥
     */
    @ExcelIgnore
    private String tronPrivate;
    /**
     * 市场名称
     */
    @ExcelProperty(value = "市场名称", index = 15)
    private String marketLine;
    /**
     * 是否激活 0 未激活, 1已激活：成功下单激活
     */
    @ExcelProperty(value = "是否激活", index = 16,converter = ActiveConverter.class)
    private Integer active;
    /**
     * 结算开始日期
     */
    @ExcelProperty(value = "结算开始日期", index = 17)
    private Date activeStart;
    /**
     * 结算结束日期
     */
    @ExcelProperty(value = "结算结束日期", index = 18)
    private Date activeEnd;

    /**
     * 0 未实名, 1 已申请，2 未通过 3 已实名
     */
    @ExcelProperty(value = "认证状态", index = 19,converter = AuthConverter.class)
    private Integer authStatus;
    /**
     * 0 未使用, 1 已使用
     */
    @ExcelProperty(value = "状态", index = 20, converter = UserStatusConverter.class)
    private Integer status;
    /**
     * 真实姓名
     */
    @ExcelProperty(value = "真实姓名", index = 21)
    private String realName;
    /**
     * 身份证号
     */
    @ExcelProperty(value = "身份证号", index = 22)
    private String idNo;
    /**
     * 身份证正面图片地址
     */
    @ExcelIgnore
    private String idUrl;
    /**
     * 身份证反面图片地址
     */
    @ExcelIgnore
    private String idBackUrl;
    /**
     * 注册时间
     */
    @ExcelProperty(value = "注册时间", index = 23)
    @ColumnWidth(25)
    @DateTimeFormat(DateUtils.DATE_TIME_PATTERN)
    private Date createTime;

}
